package com.example.laixunlong.control;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.FileProvider;
import androidx.viewpager.widget.PagerTabStrip;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.GridLayout;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.example.laixunlong.R;

import java.io.File;
import java.nio.channels.AcceptPendingException;

/*从资源文件中获取配置字符串*/
public class ResourceFile_ziyuan extends AppCompatActivity {

    TextView resource_txt_1,resource_txt_2;
    GridLayout image_table_2;

    String name="",path="";
    long size=0,id=0;
    @Override
    @SuppressLint("Range")
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.resource_file_ziyuan);
        resource_txt_1=findViewById(R.id.resource_txt_1);
        resource_txt_2=findViewById(R.id.resource_txt_2);
        image_table_2=findViewById(R.id.image_table_2);
    //获取软件内资源
        //AppResource();
    //获取软件磁盘文件资源,其实是数据Uri的获取
    //配置桌面快捷栏
        /*
        1,到AndroidMainfest.xml文件下配置主页面,添加:
        <meta-data
                android:name="android.app.shortcuts"
                android:resource="@xml/shortcuts"/>
        并在xml目录下,创建shortcuts名称的xml文件,配置相关快捷菜单,详细配置格式可跳转到文件中查看
        */

        //资源Uri被存放于系统的数据库中,需要通过MediaStore对象查询,而访问资源数据需要权限,因此还要动态获取权限
        /*
        权限获取过程省略,详见权限获取页面,获取权限:WRITE_EXTERNAL_STORAGE  和  READ_EXTERNAL_STORAGE
        */
        Cursor cursor= getContentResolver().query(/*创建解析器*/
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,/*告知执行图片资源检索*/
                new String[]{/*创建要检索的列名*/
                        MediaStore.Images.Media._ID,
                        MediaStore.Images.Media.TITLE,
                        MediaStore.Images.Media.SIZE,
                        MediaStore.Images.Media.DATA
                },
                "_size < 307200",/*检索条件,此处设置资源大小小于300kb*/
                null,
                "_size DESC"
        );
        if(cursor != null)
        {
            int i=0;//限制搜索张数
            while (cursor.moveToNext() && i<36) {
                /*根据列名将数据获取*/
                id = cursor.getLong(cursor.getColumnIndex(MediaStore.Images.Media._ID));
                name = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.TITLE));
                size = cursor.getLong(cursor.getColumnIndex(MediaStore.Images.Media.SIZE));
                path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA));
                i++;
                /*创建图片对象,放入表格布局中*/
                ImageView newimg = new ImageView(ResourceFile_ziyuan.this);
                Bitmap bitmap = BitmapFactory.decodeFile(path);//这是获取Bit流的常用方法
                newimg.setImageBitmap(bitmap);//设置显示图片
                newimg.setScaleType(ImageView.ScaleType.FIT_CENTER);//设置缩放
                newimg.setLayoutParams(new ViewGroup.LayoutParams(320, 320));//设置布局大小
                newimg.setPadding(10, 10, 10, 10);//设置内边距
                newimg.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        String a=path;
                        Toast.makeText(ResourceFile_ziyuan.this, "图片路径:" + a, Toast.LENGTH_SHORT).show();

                    }
                });
                Log.e("获取路径",path);
                image_table_2.addView(newimg);
            }
        }
    }
    /*获取软件内静态资源*/
    public void AppResource()
    {
        //获取静态资源
        /*在values文件下的内容:都可以通过getString(R.string.keyname)的方式获取*/
        String txt1=getString(R.string.txt_1);
        /*清单文件下的内容:AndroidMainfest.xml,内部数据为静态常量,作为元数据的方式存储,获取到的数据也是打包成对象的Bundle
            获取方式较为困难*/
        PackageManager mp=getPackageManager();
        try {

            ActivityInfo info=mp.getActivityInfo(getComponentName(),PackageManager.GET_META_DATA);
            Bundle b= info.metaData;//将元数据获取出来
            String txt2=b.getString("名字");//从bundle中获取数据
            //显示到页面中
            resource_txt_2.setText(txt2);

        } catch (PackageManager.NameNotFoundException e) {throw new RuntimeException(e);}
        resource_txt_1.setText(txt1);


    }
    /*获取磁盘文件中的资源*/
    public void DiskResource()
    {

    }


}